home *** CD-ROM | disk | FTP | other *** search
- ; Name : fileid.Lib
- ; Version : 1.0
- ; Programmierer :
- ; Funktion :
- ; Slot : 25
- ; Bemerkungen :
- ; :
- ; :
- ;
- ;
-
- ExtNb equ 25-1
-
- IncDir "Include:"
- Include "Libraries/FileID.i"
- Include "Libraries/FileID_IDDefs.i
- Include "Libraries/FileID_lib.i"
-
-
- *** LVO`s
- _LVOOpenLibrary = -552
- _LVOCloseLibrary = -414
- ***
- ***
- Version MACRO
- dc.b "1.0"
- ENDM
- ***
-
-
- INCDIR "Include:AMOS1.3/"
- Include "_Equ.s"
- RsSet DataLong
- Include "_Pointe.s"
- Include "_CEqu.s"
- Include "_WEqu.s"
- Include "_LEqu.s"
- INCDIR "Devpac:AMOSExtensions/
- Include "|macros.s"
-
- *********************************************************************
- Start dc.l C_Tk-C_Off
- dc.l C_Lib-C_Tk
- dc.l C_Title-C_Lib
- dc.l C_End-C_Title
- dc.w 0
-
- ***********************************************************************
- * Offset To Funktion
- C_Off dc.w (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
- dc.w (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
- dc.w (L9-L8)/2,(L10-L9)/2,(L11-L10)/2,(L12-L11)/2
- dc.w (L13-L12)/2,(L14-L13)/2,(L15-L14)/2,(L16-L15)/2
- dc.w (L17-L16)/2,(L18-L17)/2,(L19-L18)/2,(L20-L19)/2
-
- ***********************************************************************
- * Befehle
- C_Tk
- dc.w 1,0
- dc.b $80,-1
- * Befehle
- dc.w -1,L_IDGetHighID
- dc.b "id get high i","d"+$80,"0",-1
-
- dc.w -1,L_IDGetString
- dc.b "id get strin","g"+$80,"20",-1
-
- dc.w -1,L_IDIdentifyFile
- dc.b "id identify fil","e"+$80,"02",-1
-
- dc.w -1,L_IDIdentifyAdresse
- dc.b "id identify adress","e"+$80,"00",-1
-
- dc.w -1,L_IDFileInfo
- dc.b "id fileinf","o"+$80,"0",-1
-
- dc.w -1,L_IDerror
- dc.b "id erro","r"+$80,"0",-1
-
- dc.w 0
-
- **********************************************************************
- * Kaltstart
- C_Lib
-
- L0
- movem.l a3-a6,-(sp)
- lea MY(pc),a3
- move.l a3,ExtAdr+ExtNb*16(a5)
-
- ; lea MYdef(pc),a0
- ; move.l a0,ExtAdr+ExtNb*16+4(a5)
- ; lea MYend(pc),a0
- ; move.l a0,ExtAdr+ExtNb*16+8(a5)
-
-
- ****************************************
- *** library öffne
- lea IDName(pc),a1
- moveq #0,d0 ; ab Version 6
- move.l 4,a6
- jsr _LVOOpenLibrary(a6)
- move.l d0,_IDbase
-
- ****************************************
- movem.l (sp)+,a3-a6
- moveq #ExtNb,d0
- rts
- ***********************************************************
- ;MYdef rts
- *******
- ;MYend rts
- *******
- * Data
- MY:
- UserVer: dc.b "$VER: FileID Extension V"
- VERSION
- dc.b " by Haiko Lemser"
- dc.b 0
- EVEN
- IDName dc.b 'FileID.library',$00
- _IDbase dc.l 0
- FileInfo dc.l 0
- dummy dc.l 0
- IDerr dc.l 0
-
- Even
- *********************************************************************
- L1
- L2
- *********************************************************************
- *** Var = Id Get HighId
- L_IDGetHighID equ 3
- L3 movem.l a3-a6,-(sp)
- Tst.l _IDbase
- bne.w .ok3
- moveq #0,d0
- RBra L_Custom
- .ok3 move.l _IDbase,a6
- Jsr _LVOFIGetHighID(a6)
- Move.l d0,d3
- moveq #0,d2
- movem.l (sp)+,a3-a6
- Rts
- *********************************************************************
- *** String = Id Get String(Num)
- L_IDGetString equ 4
- L4 move.l (a3)+,d0 ; ID Nummer
- movem.l a3-a6,-(sp)
- Tst.l _IDbase
- bne.w .ok4
- moveq #0,d0
- RBra L_Custom
- .ok4 move.l _IDbase,a6
- Jsr _LVOFiGetIDString(a6)
- Move.l d0,d0
- sub.b #2,d0
- move.l d0,d3
- moveq #2,d2
- movem.l (sp)+,a3-a6
- Rts
- *********************************************************************
- *** Var = Id Identify File("File")
- L_IDIdentifyFile equ 5
- L5 move.l (a3)+,a4 ; ID Nummer
- add.l #2,a4
- move.l a4,d1 ; Name in D1
- movem.l a3-a6,-(sp)
- Tst.l _IDbase
- bne.w .ok5
- moveq #0,d0
- RBra L_Custom
- .ok5 move.l _IDbase,a6
- Jsr _LVOFiAllocFileInfo(a6)
- Move.l D0,FileInfo ; Structur Sichern
- bne.w .ok5_1
- moveq #4,d0
- RBra L_Custom
-
- .ok5_1 move.l _IDbase,a6
- move.l a4,d1 ; Name
- move.l FileInfo,A1 ; FileInfo Structur
- Jsr _LVOFiIdentifyFromName(a6)
- move.l d0,IDerr
- beq.w .ok5_2
-
- move.l #0,d3
- sub.l IDerr,d3
- move.l d3,d0
- RBra L_Custom
-
- .ok5_2 move.l FileInfo,a0
- move.w 4(a0),d0
- move.l d0,dummy
-
-
- Move.l _IDbase,a6
- Move.l FileInfo,a1 ; FileInfo Structur
- Jsr _LVOFiFreeFileInfo(a6)
-
- move.l dummy,d3
- moveq #0,d2
- movem.l (sp)+,a3-a6
- Rts
- *********************************************************************
- *** Var = Id Identify Adresse(Adr)
- L_IDIdentifyAdresse equ 6
- L6 move.l (a3)+,a4 ; Adresse
- move.l a4,a0
- movem.l a3-a6,-(sp)
- Tst.l _IDbase
- bne.w .ok6
- moveq #0,d0
- RBra L_Custom
- .ok6 move.l _IDbase,a6
- Jsr _LVOFiAllocFileInfo(a6)
- Move.l D0,FileInfo ; Structur Sichern
- bne.w .ok6_1
- moveq #4,d0
- RBra L_Custom
-
- .ok6_1 move.l _IDbase,a6
- move.l a4,a0
- move.l FileInfo,A1 ; FileInfo Structur
- Jsr _LVOFiIdentify(a6)
- move.l d0,IDerr
- beq.w .ok6_2
-
- move.l #0,d3
- sub.l IDerr,d3
- move.l d3,d0
- RBra L_Custom
-
- .ok6_2 move.l FileInfo,a0
- move.w 4(a0),d0
- move.l d0,dummy
-
- Move.l _IDbase,a6
- Move.l FileInfo,a1 ; FileInfo Structur
- Jsr _LVOFiFreeFileInfo(a6)
-
- move.l dummy,d3
- moveq #0,d2
- movem.l (sp)+,a3-a6
- Rts
- *********************************************************************
- L_IDFileInfo equ 7
- L7 move.l FileInfo,d3
- moveq #0,d2
- Rts
-
- L_IDerror equ 8
- L8 move.l IDerr,d3
- moveq #0,d2
- rts
-
- L9
- L10
- L11
- L12
- L13
- L14
- L15
- L16
- L17
- *********************************************************************
- *** Prüft ob Library geöffnet ist (Aufruf mit : BSR.W LibCheck)
- LibCheck Tst.l _IDbase
- bne.w .dummyok
- moveq #0,d0
- RBra L_Custom
- .dummyok Rts
- *********************************************************************
- L_Custom equ 18
- L18 lea ErrMsg(pc),a0
- moveq #0,d1
- moveq #ExtNb,d2
- moveq #0,d3
- RJmp L_ErrorExt
- ErrMsg
- dc.b "FileID.library nicht geöffnet",0 * 0
- dc.b "Kann Datei nicht finden",0 * 1
- dc.b "Kann Datei nicht prüfen",0 * 2
- dc.b "Kann Datei nicht öffnen",0 * 3
- dc.b "Kein Speicher mehr",0 * 4
- dc.b "Datei Lese Fehler",0 * 5
- dc.b "Datei Größe ist NULL",0 * 6
- dc.b "Kein Datei Name in angegebenen Pfad",0 * 7
- Even
-
- ********************************************************************
- L19 moveq #0,d1
- moveq #ExtNb,d2
- moveq #0,d3
- Rjmp L_ErrorExt
- ***
- L20
- ********************************************************************
- C_Title
- dc.b 31,"FileID Extension V "
- Version
- dc.b " by Haiko Lemser ®1998"
- dc.b 0
- Even
-
- C_End dc.w 0
- Even
-